<?php

namespace application\controller;

require_once("application/view/View.php");
require_once("login/controller/LoginController.php");
require_once("login/controller/RegisterNewUserController.php");



class Application {
	private $view;

	private $loginController;

	public function __construct() {
		$loginView = new \login\view\LoginView();

		$this->loginController = new \login\controller\LoginController($loginView);
        $this->registerNewUserController = new \login\controller\RegisterNewUserController();   //<-----Skapat ett nyy objekt utifrån en ny klass----------
		$this->view = new \application\view\View($loginView);
	}

	public function doFrontPage() {
		$this->loginController->doToggleLogin();

		if ($this->loginController->isLoggedIn()) {
			$loggedInUserCredentials = $this->loginController->getLoggedInUser();
			return $this->view->getLoggedInPage($loggedInUserCredentials);


        } else if ($this->loginController->wantsToRegisterNewUser()) {          //<----skapa en Ny Else IF--när man klickat på länken register då är else if utrycket är true så körs denna kod---

             $status = $this->registerNewUserController->getNewRegisteredUserName($this->view);     // <- skickar med view object. och retunerar en status text.
             $this->view->errorMessageNewUser($status) ;                                            // <- view object anropar en funktion och skickar med status som nu innehåller den status text som hämtades utifrån getNewRegisteredUserName() funktion

             if (isset($_SESSION['registeredUserOk'])) {                                            // <- om class RegisterNewUserController gör en lyckad registrering då sätts session till = true och denna if satts utryck blir sann och körs
                 if($_SESSION['registeredUserOk'] == true) {                                        // <- så fort den körs så sätts den till false så den inte körs flera gånger, skall endast köras 1 gång
                     $_SESSION['registeredUserOk'] = false;
                     $username = $_SESSION['registeredNewUser'];                                    // <- det nya registrerade användarnamet fylls i $usernamn
                     $this->view->successfulUserMessage("<p>Registrering av ny användare lyckades</p>");    // <- view objet anropar funktion och skickar med html sträng, ajabaja men det skiter jag i, Sorry Toll
                     $this->view->successfulUserName($username);                                            // <- gör samma sak här och skickar med det nya användarnamnet
                     return $this->view->getRegisteredUserSuccessfullPage();                                // <- object anropar funktion hämtar ut innehåll och sendan retunerar det till index som anropar doFrontPage()
                 } else {
                        return $this->view->getRegisterUserPage();                                  // <- anropar funktion i view.php som i sin tur anropar loginview.php och hämtar htlm
                 }                                                                                  // <-
             } else {                                                                               // <-
                    return $this->view->getRegisterUserPage();                                      // <-
             }                                                                                      // <-
       } else {
			return $this->view->getLoggedOutPage();
		}




	}
}
